Курс Шаблоны проектирования на Python

5Premium-PLUS

Курс даёт всеобъемлющий обзор паттернов (шаблонов) проектирования на Python на практике. На этом курсе мы рассмотрим все шаблоны проектирования из книги "банды четырёх", а также их различные современные вариации с поправками и использованием особенностей языка Python.
Вы научитесь распознавать и применять шаблоны проектирования на Python. Оценивать применимость того или иного шаблона в конкретной ситуации. Проводить рефакторинг (перепроектирование, равносильное преобразование алгоритмов) существующего кода с привнесением паттернов.

Начать обучение Регистрация

О курсе - Чему Вы научитесь?

Что такое паттерны проектирования?

Паттерны (или шаблоны) проектирования - это продуманные типовые решения типовых задач.
Шаблоны проектирования - это общие архитектурные подходы, которые люди наблюдали в объектно-ориентированном программировании. И в итоге решили составить каталог из тех, что встречались чаще всего.

В программировании достаточно много времени уделяется оптимизации кода. И переделывать сложнее, чем изначально заложить такую структуру и стиль, которые будут нуждаться в минимальных доработках. Нужно быть настоящим архитектором своего кода, а поможет в этом понимание и грамотное применение шаблонов проектирования.

Шаблоны проектирования - это важнейший из инструментов разработчика, который упрощает и ускоряет процесс обмена информацией при разработке, сокращает время на обсуждения по проектам и понимание "чужого" кода. Сами названия шаблонов являются полноценными терминами, означающих готовые схемы-решения.

Шаблоны проектирования встречаются повсюду: в любых библиотеках, они встроены в сами языки программирования. Так что вы даже не всегда осознаёте, что ими уже пользуетесь.

Впервые шаблоны проектирования были введены в оборот в 1994 году с выходом книги Design Patterns: Elements of Reusable Object-Oriented Software за авторством Erich Gamma (Эрих Гамма), John Vlissides (Джон Влиссидес), Ralph Johnson (Ральф Джонсон) and Richard Helm (Ричард Хелм), которых часто именуют “Бандой четырёх” (англ. Gang of Four, часто сокращается до GoF). Именно эта книга стала причиной роста популярности шаблонов проектирования и создала целую отрасль, посвящённую шаблонам проектирования.

Чему вы научитесь

Курс даёт всеобъемлющий обзор паттернов (шаблонов) проектирования на Python на практике. Этот курс покрывает шаблоны посредством:
  • использования самой новой версии Python
  • использования современных подходов программирования: инъекции зависимостей, реактивное программирование и т.д.
  • использования современных средств разработки таких как PyCharm
  • дискуссий различных вариаций паттернов и различных подходов

На курсе рассматриваются все шаблоны проектирования из книги "банды четырёх", а также их различные современные вариации с поправками и использованием особенностей языка Python. Вот полный список тем:
  • Принципы проектирования SOLID: принцип единственной ответственности (SRP), принцип открытости / закрытости (OCP), принцип подстановки Лисков (LSP), принцип разделения интерфейсов (ISP), принцип инверсии зависимостей (DIP)
  • Паттерны порождения: строитель, фабрики, прототип, одиночка
  • Структурные паттерны: адаптер, мост, компоновщик, декоратор, фасад, приспособленец, прокси
  • Поведенческие паттерны: цепочка зависимости, команда, интерпретатор, итератор, медиатор, хранитель, наблюдатель, состояние, стратегия, шаблонный метод, посетитель
В каждом разделе есть задание по программированию, где надо использовать рассмотренный шаблон проектирования. Код решения приложен. Обязательно сначала попробуйте решить самостоятельно!

Для кого этот курс
  • Курс для опытных (как минимум очень хорошо знакомых с Python) разработчиков, которые хотят познакомиться с современными вариантами реализации паттернов (а не только книжными устаревшими)
  • Для понимания и осознания этого материала требуется хорошее абстрактное мышление инженерное или побольше практики в программировании

Требования для прохождения курса
  • Уверенные знания в Python
Для получения базовых знаний рекомендуем пройти наши курсы для начинающих:
Полный курс Python для начинающих – с нуля до специалиста
Полный курс Python – продвинутый уровень + SQL

Присоединяйтесь к изучению Python на профессиональном уровне!

Начать обучение

План курса

Программа обучения включает видео уроки по изучению паттернов (шаблонов) проектирования на Python. Благодаря практическим заданиям, Вы сможете закрепить полученные знания по каждой теме курса.

развернуть все

свернуть все

Введение - О курсе Шаблоны проектирования на Python
1. Введение в шаблоны проектирования
2. ПОРОЖДАЮЩИЕ ШАБЛОНЫ. Строитель (Builder)
  • 2.1 Обзор01:34
  • 2.2 Реализация шаблона Строитель11:33
  • 2.3 Комбинирование строителей через интерфейс09:19
  • 2.4 Строители через наследование06:05
  • 2.5 Задача на паттерн Строитель05:00
  • 2.6 Итоги. Что узнали о шаблоне01:24
3. Фабрики (Factories)
  • 3.1 Обзор02:49
  • 3.2 Фабричный метод08:41
  • 3.3 Концепция шаблона Фабрика05:50
  • 3.4 Абстрактная фабрика14:41
  • 3.5 Задача на паттерн Фабрика05:00
  • 3.6 Итоги. Что узнали о шаблоне01:24
4. Прототип (Prototype)
  • 4.1 Обзор02:15
  • 4.2 Сценарий реализации шаблона Прототип09:06
  • 4.3 Фабрика прототипов07:08
  • 4.4 Задача на паттерн Прототип05:00
  • 4.5 Итоги. Что узнали о шаблоне00:58
5. Одиночка (Singleton)
  • 5.1 Обзор03:30
  • 5.2 Одиночка через аллокатор04:10
  • 5.3 Одиночка через декоратор03:03
  • 5.4 Одиночка через метакласс02:43
  • 5.5 Monostate06:35
  • 5.6 Одиночка и тестирование10:22
  • 5.7 Задача на паттерн Одиночка05:00
  • 5.8 Одиночка и тестирование01:34
6. СТРУКТУРНЫЕ ШАБЛОНЫ. Адаптер (Adapter)
  • 6.1 Обзор01:45
  • 6.2 Адаптер без кеширования08:43
  • 6.3 Адаптер с кешированием04:26
  • 6.4 Задача на паттерн Адаптер05:00
  • 6.5 Итоги. Что узнали о шаблоне01:26
7. Мост (Bridge)
  • 7.1 Обзор02:07
  • 7.2 Сценарий реализации шаблона Мост09:33
  • 7.3 Задача на паттерн Мост05:00
  • 7.4 Итоги. Что узнали о шаблоне00:45
8. Компоновщик (Composite)
  • 8.1 Обзор01:43
  • 8.2 Геометрические фигуры06:27
  • 8.3 Нейросети10:51
  • 8.4 Задача на паттерн Компоновщик05:00
  • 8.5 Итоги. Что узнали о шаблоне01:57
9. Декоратор (Decorator)
  • 9.1 Обзор03:04
  • 9.2 Декораторы функций в Python05:53
  • 9.3 Классические декораторы08:56
  • 9.4 Динамические декораторы07:32
  • 9.5 Задача на паттерн Декоратор05:00
  • 9.6 Итоги. Что узнали о шаблоне02:04
10. Фасад (Facade)
  • 10.1 Обзор01:59
  • 10.2 Сценарий реализации шаблона Фасад09:09
  • 10.3 Задача на паттерн Фасад05:00
  • 10.4 Итоги. Что узнали о шаблоне01:08
11. Приспособленец (Flyweight)
  • 11.1 Обзор02:38
  • 11.2 Пользовательские имена08:32
  • 11.3 Форматирование текста08:57
  • 11.4 Задача на паттерн Приспособленец05:00
  • 11.5 Итоги. Что узнали о шаблоне01:09
12. Прокси (Proxy)
  • 12.1 Обзор02:09
  • 12.2 Защитный прокси05:07
  • 12.3 Виртуальный прокси07:03
  • 12.4 Прокси vs Декоратор01:51
  • 12.5 Задача на паттерн Прокси05:00
  • 12.6 Итоги. Что узнали о шаблоне01:03
13. Цепочка ответственности (Chain of Responsibility)
  • 13.1 Обзор02:50
  • 13.2 Цепочка методов10:05
  • 13.3 Разделение команд и запросов01:55
  • 13.4 Брокерская цепочка14:04
  • 13.5 Задача на паттерн Цепочка ответственности05:00
  • 13.6 Итоги. Что узнали о шаблоне01:57
14. Команда (Command)
  • 14.1 Обзор03:31
  • 14.2 Сценарий реализации шаблона Команда14:23
  • 14.3 Компоновщик и команда17:38
  • 14.4 Задача на паттерн Команда05:00
  • 14.5 Итоги. Что узнали о шаблоне01:04
15. Интерпретатор (Interpretator)
  • 15.1 Обзор02:38
  • 15.2 Лексический анализ08:42
  • 15.3 Парсинг10:56
  • 15.4 Задача на паттерн Интерпретатор05:00
  • 15.5 Итоги. Что узнали о шаблоне01:00
16. Итератор (Iterator)
  • 16.1 Обзор02:30
  • 16.2 Сценарий реализации шаблона Итератор12:35
  • 16.3 Свойства через список08:21
  • 16.4 Задача на паттерн Итератор05:00
  • 16.5 Итоги. Что узнали о шаблоне01:35
17. Медиатор (Mediator)
  • 17.1 Обзор01:36
  • 17.2 Чат09:56
  • 17.3 Медиатор с событиями06:47
  • 17.4 Задача на паттерн Медиатор05:00
  • 17.5 Итоги. Что узнали о шаблоне01:23
18. Снимок (Memento)
  • 18.1 Обзор01:43
  • 18.2 Сценарий реализации шаблона Снимок04:13
  • 18.3 Отмена и воспроизведение06:50
  • 18.4 Задача на паттерн Снимок05:00
  • 18.5 Итоги. Что узнали о шаблоне00:57
19. Наблюдатель (Observer)
  • 19.1 Обзор02:27
  • 19.2 События06:55
  • 19.3 Property Observers06:50
  • 19.4 Property Dependencies05:02
  • 19.5 Задача на паттерн Наблюдатель05:00
  • 19.6 Итоги. Что узнали о шаблоне01:25
20. Состояние (State)
  • 20.1 Обзор01:55
  • 20.2 Классическая реализация07:48
  • 20.3 Машина состояний на словаре08:27
  • 20.4 Машина состояний на switch05:13
  • 20.5 Задача на паттерн Состояние05:00
  • 20.6 Итоги. Что узнали о шаблоне01:15
21. Стратегия (Strategy)
  • 21.1 Обзор02:17
  • 21.2 Сценарий реализации шаблона Стратегия09:51
  • 21.3 Задача на паттерн Стратегия05:00
  • 21.4 Итоги. Что узнали о шаблоне01:11
22. Шаблонный метод (Template Method)
  • 22.1 Обзор02:01
  • 22.2 Сценарий реализации Шаблонного метода08:01
  • 22.3 Задача на паттерн Шаблонный метод05:00
  • 22.4 Итоги. Что узнали о шаблоне00:58
23. Посетитель (Visitor)
  • 23.1 Обзор03:32
  • 23.2 Интрузивный посетитель07:12
  • 23.3 Рефлексивный посетитель06:53
  • 23.4 Классический посетитель06:40
  • 23.5 Улучшенный классический посетитель07:25
  • 23.6 Задача на паттерн Посетитель05:00
  • 23.7 Итоги. Что узнали о шаблоне01:36
24. Итоги. Кратко обо всех шаблонах
  • 24.1 Краткое содержание курса12:46
Завершение курса - Получение Сертификата

Начать обучение

Студенты также изучают

online_course
new
4.9
  • 75 видео
  • 11 часов
online_course
new
5
  • 98 видео
  • 19 часов

Отзывы студентов о курсе

Мы собрали отзывы учеников, прошедших онлайн курс. Оставьте свой отзыв после прохождения курса Шаблоны проектирования на Python.

Наталия Селезнева

Курс очень понравился, спасибо!

Начать обучение

Преподаватель

Course Author
Илья Фофанов & Dmitri Nesteruk

О преподавателях курса

Илья Фофанов

  • Инженер-программист с опытом более 15 лет
  • Сертифицированный специалист по WPF и WCF
  • Организатор и координатор .NET митапов MskDotNet

"Я благодарен за то, что люблю своё дело.

Профессионально занимался проектированием и реализацией ПО больше 10 лет, преимущественно на платформе .NET. Люблю работать над созданием богатых и мощных приложений с использованием современных технологий. Сертифицированный специалист по WPF и WCF. Один из координаторов московских .NET митапов MskDotNet.

О стиле преподавания: самое главное, что характеризует мои курсы - выжимка самого необходимого. Краткость - сестра таланта, и я верю в то, что в современную эпоху информационной перегруженности - необходимо сосредотачиваться на самом главном и отсеивать "лишнее" до тех пор, пока это "лишнее" действительно не понадобится.

Пожелание студентам: Fake it Till You Make it! Это означает: притворяйся, пока не получится.  Хотите стать senior developer? Имитируйте его деятельность, старайтесь делать всё то же, что делает senior developer, и так или иначе - вы им станете. Поэтому - учиться, учиться и  ещё раз учиться. Нет унынию. Fake it Till You Make it!"



Дмитрий Нестерук (Dmitri Nesteruk)

  • Software/Hardware Engineering • Quant Finance • Algotrading

Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.

Всего заданий: 128

Видеоуроки: 106

Практические задания: 22


Продолжительность: ~12 часов